#pragma once
#include "SkinWindowImpl.h"

class CSkinViewImpl: public CSkinWindowImpl<CSkinViewImpl>
{
    SKIN_DECLARE_CLASS( CSkinViewImpl, _T( "SkinViewImpl" ) )

    BEGIN_MSG_MAP( CSkinViewImpl )
    MESSAGE_HANDLER( WM_PAINT, OnPaint )
    MESSAGE_HANDLER( WM_ERASEBKGND, OnEraseBkGnd )
    END_MSG_MAP()
public:

    HWND Create(
        _In_opt_ HWND hWndParent,
        _In_ _U_RECT rect = NULL,
        _In_opt_z_ LPCTSTR szWindowName = NULL,
        _In_ DWORD dwStyle = 0,
        _In_ DWORD dwExStyle = 0,
        _In_ _U_MENUorID MenuOrID = 0U,
        _In_opt_ LPVOID lpCreateParam = NULL, LPCTSTR lpszClassName = NULL )
    {
        dwStyle |= WS_VISIBLE | WS_CHILD;
        return __super::Create( hWndParent, rect, szWindowName, dwStyle, dwExStyle, MenuOrID, lpCreateParam, GetClassName() );
    }

    LRESULT OnPaint( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle )
    {
        return 0;
    }

    LRESULT OnEraseBkGnd( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandle )
    {
        bHandle = TRUE;
        return TRUE;
    }
protected:
private:
};